package com.cw.myhashmap;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class HashMapDemo1 {
    /*
   需求：创建一个HashMap集合，键是学生对象(Student)，值是籍贯(String)。
   存储三个键值对元素，并遍历
   要求：同姓名，同年龄认为是同一个学生

   核心点：
       HashMap的键位置如果存储的是自定义对象，需要重写hashCode和equals方法。
  */
    ArrayList<String> arrayList = new ArrayList<>();
    public static void main(String[] args) {
        Student s1 = new Student("lzx", 18);
        Student s2 = new Student("ld", 20);
        Student s3 = new Student("bzb", 22);
        Student s4 = new Student("bzb", 22);

        Map<Student, String> map = new HashMap<>();


        map.put(s1, "连江");
        map.put(s2, "温州");
        map.put(s3, "泉州");
        map.put(s4, "赣州");
        // lambda表达式遍历
//        map.forEach((student, s) -> System.out.println(student + "=" + s));
        // 键找值
/*
        Set<Student> keys = map.keySet();
        for (Student key : keys) {
            String value = map.get(key);
            System.out.println(key+"="+value);
        }
*/

/*        // 键值对
        for (Map.Entry<Student, String> studentStringEntry : map.entrySet()) {
            Student key = studentStringEntry.getKey();
            String value = studentStringEntry.getValue();
            System.out.println(key+"="+value);
        }*/


    }
}
